<?php

require_once ('BaseService.php');

/**
 * Description of EntrevistasService
 *
 * @author MFerreira
 */
class EntrevistasService extends BaseService {

    public function __construct($serviceBaseURL) {
        parent::__construct($serviceBaseURL);
    }

    public function getServiceClass() {
        return "Entrevistas";
    }

    function GetHabilitados(PeriodoAcademico $PeriodoAcademico, $idPlanEstudio) {
        $serializer = parent::getSerializer(parent::getMimeType());
        $periodoString = $serializer->serialize($PeriodoAcademico);
        $data = $serializer->wrapArray(array(
            "PeriodoAcademico"=>$periodoString,
            "IdPlanEstudio"=>$idPlanEstudio
        ));
        
        var_dump($data);
        
        $response = parent::invokeService("GetHabilitados", $data);
        
        $result = $response;
        
        var_dump($result);
        die;

        if ($this->shouldDecode) {
            Loader::using("models::entities::Entrevistas");
            $decoder = parent::getSerializer(parent::getMimeType(), "Entrevistas", Entrevistas::MAPPING());
            $result = $decoder->deserializeArray($response);
            $result = $result[0];
        }
        
        return $result;
    }
    
    function GetPruebas(PeriodoAcademico $PeriodoAcademico, $idPlanEstudio, $fecha) {
        $serializer = parent::getSerializer(parent::getMimeType());
        $periodoString = $serializer->serialize($PeriodoAcademico);
        $data = $serializer->wrapArray(array(
            "PeriodoAcademico"=>$periodoString,
            "IdPlanEstudio"=>$idPlanEstudio,
            "FechaEntrevista"=>$fecha
        ));
        $response = parent::invokeService("GetPruebas", $data);
        
        $result = $response;

        if ($this->shouldDecode) {
            Loader::using("models::entities::HorarioEntrevistas");
            $decoder = parent::getSerializer(parent::getMimeType(), "HorarioEntrevistas", HorarioEntrevistas::MAPPING());
            $result = $decoder->deserializeArray($response);
            $result = $result[0];
        }
        
        return $result;
    }

    function Reservar(EntrevistaPk $EntrevistaPk, $decumentoIdentidad) {
        Loader::using("models::entities::EntrevistaPk");
        
        $serializer = parent::getSerializer(parent::getMimeType());
        $entrevistaString = $serializer->serialize($EntrevistaPk);
        $data = $serializer->wrapArray(array(
            "Pk"=>$entrevistaString,
            "documentoIdentidad"=>$decumentoIdentidad
        ));
        
        $response = parent::invokeService("Reservado", $data);
        return $response;
    }
    
    function GetEntrevista(PeriodoAcademico $PeriodoAcademico, $documentoIdentidad, $idPlanEstudio) {
        $serializer = parent::getSerializer(parent::getMimeType());
        
        $periodoString = $serializer->serialize($PeriodoAcademico);
        
        $data = $serializer->wrapArray(array(
            "PeriodoAcademico"=>$periodoString,
            "DocumentoIdentidad"=>$documentoIdentidad,
            "IdPlanEstudio"=>$idPlanEstudio
        ));
        
        $response = parent::invokeService("GetEntrevista", $data);
        
        $result = $response;
        
        if(!empty($result)){
            Loader::using("models::entities::Entrevistas");
            $result = parent::processSingleObjectResponse($response, parent::getMimeType(), "Entrevistas", Entrevistas::MAPPING());
        }
        
        return $result;
    }

}

?>
